/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.edu.ues.igf115.clave1.datos;

import java.util.List;
import javax.persistence.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import sv.edu.ues.igf115.utilidades.datos.HibernateUtil;
  import sv.edu.ues.igf115.clave1.dominio.ClienteTarjeta;
/**
 *
 * @author Traabajo
 */
public class DaoClientetarjeta {
    
  private HibernateUtil hibernateUtil = new HibernateUtil() ;
  

    
    public void guarda(ClienteTarjeta clienteT){
		//1. Obtengo la SessionFactory
		
		//2. Obtengo la Session
		Session sesion = hibernateUtil.getSession();
		//3. Obtengo la Transaccion
		Transaction tx = sesion.beginTransaction();
		//4. Guardo la libreta
		sesion.save(clienteT);
		//5. Guardo los cambios de la sesion
		tx.commit();
		sesion.flush();
		//6. Cierro la sesion
		sesion.close();
	}
    
     public void actualizar(ClienteTarjeta clienteT){
		//1. Obtengo la SessionFactory
		
		//2. Obtengo la Session
		Session sesion = hibernateUtil.getSession();
		//3. Obtengo la Transaccion
		Transaction tx = sesion.beginTransaction();
		//4. Guardo la libreta
		sesion.update(clienteT);
		//5. Guardo los cambios de la sesion
		tx.commit();
		sesion.flush();
		//6. Cierro la sesion
		sesion.close();
	}
       public void elimina (ClienteTarjeta clienteT){
		//1. Obtengo la SessionFactory
		
		//2. Obtengo la Session
		Session sesion = hibernateUtil.getSession();
		//3. Obtengo la Transaccion
		Transaction tx = sesion.beginTransaction();
		//4. Guardo la libreta
		sesion.delete(clienteT);
		//5. Guardo los cambios de la sesion
		tx.commit();
		sesion.flush();
		//6. Cierro la sesion
		sesion.close();
	}

    public ClienteTarjeta clientetarjeta (String cliente, String tarjeta){
		//1. Obtengo la SessionFactory
		
		//2. Obtengo la Session
		Session sesion = hibernateUtil.getSession();
		
               String condicion = "from ClienteTarjeta as clientetarjeta where clientetarjeta.id.idCliente= :id_cliente and clientetarjeta.id.idTarjeta= :id_tarjeta" ;
               
               org.hibernate.Query consulta = sesion.createQuery(condicion) ;
                
                consulta.setString("id_cliente", cliente) ;
                consulta.setString("id_tarjeta", tarjeta) ;
		
                List clientet = consulta.list();
		
                sesion.close();
		if (clientet.isEmpty()){
			return null;
		}else{
			return (ClienteTarjeta)clientet.get(0);
		}

	}
    
     public List<ClienteTarjeta> clientetarjetaTodo (){
		//1. Obtengo la SessionFactory
		
		//2. Obtengo la Session
		Session sesion = hibernateUtil.getSession();
		
               String condicion = "from ClienteTarjeta" ;
               
               org.hibernate.Query consulta = sesion.createQuery(condicion) ;
                		
                List clientet = consulta.list();
		
                sesion.close();
		if (clientet.isEmpty()){
			return null;
		}else{
			return clientet;
		}

	}
    
    
}
